package com.ljxt.dt.dao.storemanagementdao;

import com.ljxt.dt.domain.*;
import com.ljxt.dt.vo.storemanagement.FindVO;
import com.ljxt.dt.vo.storemanagement.ReceptDetailVO;
import com.ljxt.dt.vo.storemanagement.ReceptVO;


import java.util.List;

/**
 * @author 唐春劲
 * @version 1.0.0
 * @date 2020-05-11 19:04
 * @copyright 老九学堂
 */

public interface StoreDao  {
    /**
     * 分页查询所有
     * @param pageIndex
     * @param pageSize
     * @return
     */
    List<ReceptInfo> findAll(int pageIndex, int pageSize, FindVO findVO);

    /**
     * 查询制单人
     * @return
     */
    List<String> selectName();

    /**
     * 查询入库类型
     * @return
     */
    List<ReceptType> selectType();

    /**
     * 查询提交状态
     * @return
     */
    List<BillState> selectResult();

    /**
     * 查询单据状态
     * @param id
     * @return
     */
    String selectResultString(int id);

    /**
     * 查询单据类型
     * @param id
     * @return
     */
    String selectName(int id);

    /**
     * 查询总数
     * @param findVO
     * @return
     */
    int selectTotle(FindVO findVO);


    /**
     * 查询经办形象的类型
     * @param id
     * @return
     */
    String selectInfoValue(int id);

    /**
     * 查询经办形象的结果
     * @param id
     * @return
     */
    String selectInfoResult(int id);

    /**
     * 提交订单
     * @param order
     * @return
     */
    int submitOrder(String order);


    /**
     * 新增经办信息
     * @param name 制单人姓名
     * @param typeId 经办类型
     * @param resultId 经办结果
     * @return
     */
    int insertBill(String order ,String name,Integer typeId ,Integer resultId);

    /**
     * 审核订单
     * @param datum
     * @return
     */
    int checkOrder(String datum);

    /**
     * 订单审核拒绝
     * @param datum
     * @return
     */
    int denyCheckOrder(String datum);

    /**
     * 删除订单
     * @param order
     * @return
     */
    int delete(String order);

    /**
     * 删除订单关联的商品
     * @param order
     * @return
     */
    int deleteInfo(String order);

    /**
     *改变单据状态为已完成
     * @param receptNo
     */
    int submitInfo(String receptNo);


    /**
     * 增加货架信息
     * @param receptDetailVO
     * @return
     */
    int insertStock(ReceptDetailVO receptDetailVO);

    /**
     * 更新订单商品数据
     * @param receptDetailVO
     * @return
     */
    int  updateBill(ReceptDetailVO receptDetailVO);


    int  insertStockGoodsInfo(ReceptDetailVO receptDetailVO);
}
